package com.bluetooth.phone

import android.text.TextUtils
import android.util.Log

class LogUtils private constructor() {

    companion object {
        private const val TAG = "[DragRv]"

        var isDebug: Boolean = true

        @JvmStatic
        fun i(tag: String, msg: String) {
            if (TextUtils.isEmpty(msg)) {
                return
            }
            if (isDebug) {
                Log.i(TAG + tag, fileLineMethod + msg)
                return
            }
            Log.i(TAG + tag, msg)
        }

        @JvmStatic
        fun d(tag: String, msg: String) {
            if (TextUtils.isEmpty(msg)) {
                return
            }
            Log.d(TAG + tag, fileLineMethod + msg)
        }

        @JvmStatic
        fun e(tag: String, msg: String) {
            if (TextUtils.isEmpty(msg)) {
                return
            }
            if (isDebug) {
                Log.e(TAG + tag, fileLineMethod + msg)
                return
            }
            Log.e(TAG + tag, msg)
        }

        fun v(tag: String, msg: String) {
            if (TextUtils.isEmpty(msg)) {
                return
            }
            if (isDebug) {
                Log.w(TAG + tag, fileLineMethod + msg)
                return
            }
            Log.w(TAG + tag, msg)
        }

        @JvmStatic
        fun w(tag: String, msg: String) {
            if (TextUtils.isEmpty(msg)) {
                return
            }
            if (isDebug) {
                Log.w(TAG + tag, fileLineMethod + msg)
                return
            }
            Log.w(TAG + tag, msg)
        }

        private val fileLineMethod: String
            get() {
                val thread = Thread.currentThread()
                val traceElement = thread.stackTrace[4]
                return "[" + thread.name + "][" +
                        traceElement.methodName + "(" +
                        traceElement.fileName + ":" +
                        traceElement.lineNumber + ")" +
                        "] "
            }
    }
}